package org.jsola.hr.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_COMPANY_ADDRESS;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_COMPANY_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_COMPANY_PERSON_SIZE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_COMPANY_TYPE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_EMAIL;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_ERROR_REASON;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_FAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_GENDER;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_IS_ERROR;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_IS_IMPORT;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_PHONE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_POST_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_RECORD_ID;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.E_WECHAT;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_COMPANY_ADDRESS_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_COMPANY_NAME_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_EMAIL_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_ERROR_REASON_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_FAX_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_NAME_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_PHONE_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_POST_NAME_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_RECORD_ID_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.M_WECHAT_MAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_COMPANY_ADDRESS;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_COMPANY_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_COMPANY_PERSON_SIZE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_COMPANY_TYPE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_EMAIL;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_ERROR_REASON;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_FAX;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_GENDER;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_IS_ERROR;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_IS_IMPORT;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_PHONE;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_POST_NAME;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_RECORD_ID;
import static org.jsola.hr.example.CrmCustomerImportDetailsExample.N_WECHAT;

/**
 * 导入客户记录详情表
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "新增【导入客户记录详情表】的参数")
@Data
public class CrmCustomerImportDetailsAddDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_POST_NAME, example = E_POST_NAME)
    @Length(max = 50, message = M_POST_NAME_MAX)
    private String postName;

    @ApiModelProperty(notes = N_RECORD_ID, example = E_RECORD_ID)
    @Length(max = 32, message = M_RECORD_ID_MAX)
    private String recordId;

    @ApiModelProperty(notes = N_NAME, example = E_NAME)
    @Length(max = 100, message = M_NAME_MAX)
    private String name;

    @ApiModelProperty(notes = N_PHONE, example = E_PHONE)
    @Length(max = 100, message = M_PHONE_MAX)
    private String phone;

    @ApiModelProperty(notes = N_GENDER, example = E_GENDER)
    private Integer gender;

    @ApiModelProperty(notes = N_EMAIL, example = E_EMAIL)
    @Length(max = 32, message = M_EMAIL_MAX)
    private String email;

    @ApiModelProperty(notes = N_WECHAT, example = E_WECHAT)
    @Length(max = 32, message = M_WECHAT_MAX)
    private String wechat;

    @ApiModelProperty(notes = N_FAX, example = E_FAX)
    @Length(max = 32, message = M_FAX_MAX)
    private String fax;

    @ApiModelProperty(notes = N_COMPANY_NAME, example = E_COMPANY_NAME)
    @Length(max = 100, message = M_COMPANY_NAME_MAX)
    private String companyName;

    @ApiModelProperty(notes = N_COMPANY_ADDRESS, example = E_COMPANY_ADDRESS)
    @Length(max = 100, message = M_COMPANY_ADDRESS_MAX)
    private String companyAddress;

    @ApiModelProperty(notes = N_COMPANY_TYPE, example = E_COMPANY_TYPE)
    private Integer companyType;

    @ApiModelProperty(notes = N_COMPANY_PERSON_SIZE, example = E_COMPANY_PERSON_SIZE)
    private Integer companyPersonSize;

    @ApiModelProperty(notes = N_IS_ERROR, example = E_IS_ERROR)
    private Boolean isError;

    @ApiModelProperty(notes = N_ERROR_REASON, example = E_ERROR_REASON)
    @Length(max = 100, message = M_ERROR_REASON_MAX)
    private String errorReason;

    @ApiModelProperty(notes = N_IS_IMPORT, example = E_IS_IMPORT)
    private Boolean isImport;


}

